package com.colabo.j2ee.web.oaf.monitorperspective;

import com.colabo.j2ee.web.core.exception.ServiceException;

/**
 * 定时任务管理器接口
 * 用于控制定时任务的开启，停止等
 */
public interface IScheduledTaskManagerService {
	public static final String BEAN_ID = "scheduleTaskManagerService";
	
	/**
	 * 开始一个指定任务
	 * @param taskCode  任务编码
	 * @param express   调度参数
	 * @return
	 * @throws Exception
	 */
	public ITask startTask(String taskCode, String express)throws ServiceException;
	
	/**
	 * 开始一个指定任务
	 * @param hostName  机器名称
	 * @param taskCode  任务编码
	 * @param className 任务类名
	 * @param express   调度参数
	 * @return
	 * @throws Exception
	 * @return
	 * @throws Exception
	 */
	public ITask startTask(String hostName, String taskCode, String className, String express)throws ServiceException;
	
	/**
	 * 开始一个指定任务
	 * @param taskCode  任务编码
	 * @param className 任务类名
	 * @param express   调度参数
	 * @return
	 * @throws Exception
	 */
	public ITask startTask(String taskCode, String className, String express)throws ServiceException;
	
	/**
	 * 停止一个指定任务
	 * 
	 * @param taskCode
	 *            任务编码
	 * @throws Exception
	 */
	public void shutdown(String taskCode) throws ServiceException ;
	
	/**
	 * 停止一个指定任务
	 * @param hostName  机器名称
	 * @param taskCode  任务编码
	 * @throws Exception
	 */
	public void shutdown(String hostName, String taskCode) throws ServiceException ;
	
	/**
	 * 初始化，在系统启动的时候默认初始化操作；
	 * 启动后此方法不能再调用
	 * @throws Exception
	 */
	public void init()throws ServiceException ;
	
	/**
	 * 启动修改过的任务
	 * @throws ServiceException
	 */
	public void refresh() throws ServiceException ;
}
